import axios from 'axios'
import {VueAxios} from './axios'
import router from '../router' 
// 创建 axios 实例
const request = axios.create({
    // API 请求的默认前缀
    baseURL: '',
    // withCredentials: true,
    timeout: 6000 // 请求超时时间
})

// 异常拦截处理器
const errorHandler = (error) => {
	console.log(error,'-------error------')
    if (error.response) {
        const data = error.response.data
        // 从 localstorage 获取 token
        // const token = storage.get(ACCESS_TOKEN)
        if (error.response.status === 1001) { //token 过期
		  console.log('未登录')
				this.$router.push({name:'login',query:{state:1}})
            // notification.error({
            //     message: '暂无权限',
            //     description: data.message
            // })
        }
        if (error.response.status === 401 && !(data.result && data.result.isLogin)) {
            notification.error({
                message: '未登录',
                description: '需要登录'
            })
            //如果没拿到token，执行退出登录
            // if (token) {
            //     store.dispatch('Logout').then(() => {
            //         setTimeout(() => {
            //             window.location.reload()
            //         }, 1500)
            //     })
            // }
        }
    }
    return Promise.reject(error)
}

// request interceptor
request.interceptors.request.use(config => {
	try {
	   // 你的逻辑代码
		const token = localStorage.getItem('ACCESS_TOKEN')
		console.log(token,'------48-----')
		// 如果 token 存在
		// 让每个请求携带自定义 token 请根据实际情况自行修改
		if (token) {
		    config.headers['token'] = token
		}
	} catch (e) {
	   // 错误处理代码片段
	}
   
    return config
}, errorHandler)

// response interceptor
request.interceptors.response.use((response) => {
	console.log(response)
    // console.log(response.data)
    if(response.data.code == 601 ){
        // window.location.href = '/login'
		  router.replace({ path: '/login' })
    }
    return response.data
}, errorHandler)

const installer = {
    vm: {},
    install(Vue) {
        Vue.use(VueAxios, request)
    }
}

export default request

export {
    installer as VueAxios,
    request as axios
}
